.text

.global _start

_start:
	# close whatch dog
	ldr r0, =0x53000000
	ldr r1, = 0
	str r1,[r0]

	# set stack
	# boot by nor or nand 
	# 写0到0地址,再读出来
	# 如果得到0,表示0地址上的内容被修改了,
	# 它对应ram,这就是nand的启动.
	# 否则就是nor启动
	mov r1,#0
	ldr r0,[r1] /* 读出原来的值备份一下*/
	str r1,[r1] /* 0>[0]*/
	ldr r2,[r1] /* p r2=[0]*/
	cmp r1,r2   /*  r1==r2?nand:nor*/
	ldr sp, =0x40000000+4096 /*  先假设nor启动*/
	moveq sp, #4096 /*  如果cmp成立则运行这句*/
	streq r0, [r1]  /*  恢复r0的值*/

    bl main 

halt:
    b halt
